package com.levy.contronller.jvm.classLoader;

/**
 * 对于数组实例来说，其类型是由JVM在运行期间动态生成的，表示为[Lcom.levy.contronller.jvm.classLoader.MyParent4;的这种形式。
 * 动态生成的类型，其父类型就是object。
 *
 * 对于数组来说，javaDoc经常将构成数组的元素为Component，实际就是将数组降低一个维度后的类型
 *
 * 助记符：
 *  anewarray: 表示创建一个引用类型的数组（类、接口、数组），并将其引用压入栈顶
 *  newarray: 表示创建一个原始类型的数组（int、float、char等），并将其引用压入栈顶
 *
 *
 */
public class MyTest4 {

    public static void main(String[] args) {
        MyParent4[] myParent4s = new MyParent4[5];
        System.out.println(myParent4s.getClass());

        MyParent4[][] myParent4s1 = new MyParent4[5][5];
        System.out.println(myParent4s1.getClass());


        System.out.println(myParent4s.getClass().getSuperclass());
        System.out.println(myParent4s1.getClass().getSuperclass());


        int[] ints = new int[3];
        System.out.println(ints.getClass());
        System.out.println(ints.getClass().getSuperclass());

    }
}

class MyParent4 {

    static {
        System.out.println("myparent4 load");
    }
}
